package com.yogurt.leetcode.surplus;

/**
 * 整数的各位积和之差
 *
 * 给你一个整数 n，请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差
 *
 * 示例 1：
 * 输入：n = 234
 * 输出：15
 * 解释：
 * 各位数之积 = 2 * 3 * 4 = 24
 * 各位数之和 = 2 + 3 + 4 = 9
 * 结果 = 24 - 9 = 15
 *
 *
 * 示例 2：
 * 输入：n = 4421
 * 输出：21
 * 解释：
 * 各位数之积 = 4 * 4 * 2 * 1 = 32
 * 各位数之和 = 4 + 4 + 2 + 1 = 11
 * 结果 = 32 - 11 = 21
 *
 * 1 <= n <= 10^5
 */
public class Solution2 {
    public static void main(String[] args) {
        Solution2 s2 = new Solution2();
        int n = 11;
        int result = s2.subtractProductAndSum(n);
        System.out.println(result);
    }

    public int subtractProductAndSum(int n) {
        if (n < 10) {
            return 0;
        }
        if (n == 10) {
            return -1;
        }
        int sum = 0;
        int product = 1;
        for (;;) {
            if (n > 0) {
                int a = n % 10;
                sum += a;
                product *= a;
                n /= 10;
            }else {
                return product - sum;
            }
        }
    }
}
